package com.chainyoung.trademarket.di.module;

import com.chainyoung.common.di.scope.ActivityScope;
import com.chainyoung.trademarket.mvp.contract.AdDetailContract;
import com.chainyoung.trademarket.mvp.contract.ForgetPwdContract;
import com.chainyoung.trademarket.mvp.contract.InformationContact;
import com.chainyoung.trademarket.mvp.contract.LoginContract;
import com.chainyoung.trademarket.mvp.contract.MainContract;
import com.chainyoung.trademarket.mvp.contract.MsgCenterContract;
import com.chainyoung.trademarket.mvp.model.AdDetailModel;
import com.chainyoung.trademarket.mvp.model.ForgetPwdModel;
import com.chainyoung.trademarket.mvp.model.InformationModel;
import com.chainyoung.trademarket.mvp.model.LoginModel;
import com.chainyoung.trademarket.mvp.model.MainModel;
import com.chainyoung.trademarket.mvp.model.MsgCenterModel;

import dagger.Module;
import dagger.Provides;

/**
 * Author by Damon,  on 2018/8/6.
 */
@Module
public class MainModule {

    private MainContract.View view;

    private MsgCenterContract.View msgCenterView;

    private AdDetailContract.View adDetailView;

    private ForgetPwdContract.View forgetPwdView;

    private InformationContact.View inforView;


    public MainModule(MainContract.View view) {
        this.view = view;
    }

    public MainModule(MsgCenterContract.View view) {
        this.msgCenterView = view;
    }

    public MainModule(AdDetailContract.View view) {
        this.adDetailView = view;
    }

    public MainModule(ForgetPwdContract.View view) {
        this.forgetPwdView = view;
    }

    public MainModule(InformationContact.View view) {
        this.inforView = view;
    }

    @ActivityScope
    @Provides
    MainContract.View providerMainView() {
        return this.view;
    }

    @ActivityScope
    @Provides
    MainContract.Model providerMainModel(MainModel model) {
        return model;
    }

    @ActivityScope
    @Provides
    MsgCenterContract.View providerMsgCenterView() {
        return this.msgCenterView;
    }

    @ActivityScope
    @Provides
    MsgCenterContract.Model providerMsgCenterModel(MsgCenterModel model) {
        return model;
    }


    @ActivityScope
    @Provides
    AdDetailContract.View providerAdView() {
        return this.adDetailView;
    }

    @ActivityScope
    @Provides
    AdDetailContract.Model providerAdModel(AdDetailModel model) {
        return model;
    }


    @ActivityScope
    @Provides
    ForgetPwdContract.View providerPwdView() {
        return this.forgetPwdView;
    }

    @ActivityScope
    @Provides
    ForgetPwdContract.Model providerPwdModel(ForgetPwdModel model) {
        return model;
    }


    @ActivityScope
    @Provides
    InformationContact.View providerInforView() {
        return this.inforView;
    }

    @ActivityScope
    @Provides
    InformationContact.Model providerInforModel(InformationModel model) {
        return model;
    }


}
